package com.bringway.p2p.service;

import java.util.List;
import java.util.Map;

import com.bringway.global.domain.SysUserDetails;
import com.bringway.p2p.domain.User;

import net.sf.json.JSONObject;

/*
 * @author fan
 * @className MyUserService
 * @description 用户操作业务逻辑接口
 * @date 2015年12月17日下午3:56:35
 */
public interface P2PUserService {
	/**
	 * @方法名称:users
	 * @方法描述:获取所有用户的方法
	 * @author fan
	 * @date 2015年12月17日下午4:01:22
	 * @param parms
	 * @return
	 */
	public List users(JSONObject parms);

	/**
	 * @方法名称:usersAllLimit
	 * @方法描述:查询所有的用户，并且分页
	 * @author fan
	 * @date 2015年12月28日下午2:47:28
	 * @param parms
	 * @return
	 */
	public List usersAllLimit(JSONObject parms);

	/**
	 * @方法名称:addUser
	 * @方法描述:新增用户
	 * @author fan
	 * @date 2015年12月28日下午4:43:43
	 * @param parms
	 * @return
	 */
	public boolean addUser(JSONObject parms);
	
	/**
	 * @方法名称:deleteUser
	 * @方法描述:删除用户
	 * @author fan
	 * @date 2015年12月29日上午9:33:02
	 * @param parms
	 * @return
	 */
	public boolean deleteUser(JSONObject parms);
	
	/**
	 * @方法名称:updateUser
	 * @方法描述:更新用户的方法
	 * @author fan
	 * @date 2015年12月29日下午1:59:17
	 * @param parms
	 * @return
	 */
	public boolean updateUser(JSONObject parms);
	
	/**
	 * @方法名称:updateAppUser
	 * @方法描述:更新用户的方法
	 * @author fan
	 * @date 2015年12月29日下午1:59:17
	 * @param parms
	 * @return
	 */
	public boolean updateAppUser(JSONObject parms);
	
	/**
	 * @方法名称:resetPassword
	 * @方法描述:重置密码
	 * @author fan
	 * @date 2015年12月29日下午4:30:08
	 * @param parms
	 * @return
	 */
	public boolean resetPassword(JSONObject parms);
	
	/**
	 * @方法名称:login
	 * @方法描述:登录的方法
	 * @author fan
	 * @date 2015年12月30日上午9:51:46
	 * @param params
	 * @return
	 */
	public Map<String,Object> login(JSONObject params);
	
	/**
	 * @方法名称:addUserRole
	 * @方法描述:新增用户角色关系
	 * @author fan
	 * @date 2015年12月31日下午3:15:21
	 * @param userId
	 * @param roleId
	 * @param xM 
	 */
	public void addUserRole(String userId, String roleId, String xM);
	
	/**
	 * @方法名称:login
	 * @方法描述:登录
	 * @author fan
	 * @date 2015年12月30日上午9:53:06
	 * @param gyh
	 * @return
	 */
	public SysUserDetails login(String gyh);

	/**
	 * @方法名称:getPageCount
	 * @方法描述:获取总记录数
	 * @author fan
	 * @date 2016年1月28日下午5:10:27
	 * @param tableName
	 * @return
	 */
	public int getPageCount(String tableName);
	
	/**
	 * @方法名称: comparePassword
	 * @方法描述: 验证密码输入是否正确
	 * @时间:2016年2月18日下午5:18:08
	 * @author:邵jing
	 * @param parms
	 * @return
	 */
	public boolean comparePassword(JSONObject parms);
	
	/**
	 * 
	 * @方法名称: changePassword
	 * @方法描述: 修改密码
	 * @时间:2016年2月19日上午10:15:02
	 * @author:邵jing
	 * @param parms
	 * @return
	 */
	public boolean changePassword(JSONObject parms);
	
	/**
	 * @方法名称: getUsersItems
	 * @方法描述: 获取用户的总记录数
	 * @时间:2016年3月1日下午1:37:09
	 * @author:邵jing
	 * @param parms
	 * @return
	 */
	public int getUsersItems(JSONObject parms);
	/**
	 * @作者 js  
	 * @方法名 listJkrInfo  
	 * @功能 TODO 
	 * @param params
	 * @return
	 */
	List<Map<String, Object>> listJkrInfo(JSONObject params);
	/**
	 * @作者 js  
	 * @方法名 getJkrInfoCount  
	 * @功能 TODO 
	 * @param params
	 * @return
	 */
	int getJkrInfoCount(JSONObject params);
	/**
	 * @作者 js  
	 * @方法名 listSqrSjhm  
	 * @功能 TODO 获取注册借款人,授权人手机号码
	 * @return
	 */
	List<Map<String, Object>> listSqrSjhm();
	/**
	 * @作者 js  
	 * @方法名 checkUsername  
	 * @功能 TODO 检查用户名
	 * @param user_name
	 * @return
	 */
	JSONObject checkUsername(String user_name);
	/**
	 * @作者 js  
	 * @方法名 checkSjhm  
	 * @功能 TODO 检查手机号码
	 * @param sjhm
	 * @return
	 */
	JSONObject checkSjhm(String sjhm);
	/**
	 * @作者 js  
	 * @方法名 saveJkrInfo  
	 * @功能 TODO 保存注册借款人信息
	 * @param params
	 * @return
	 */
	JSONObject saveJkrInfo(JSONObject params);
}
